package cmd

// 初始化命令管理器并注册基础命令
func init() {
	cmdmgr = newCmdMgr()
	cmdmgr.RegisterCmd("help", "显示所有命令", nil)
}

/*
所有命令的定义放在这里

一人命令的定义分为：
cmd -[p] [pv] ...
cmd	是下面定义的指定
p	是对应的参数
pv	是对应参数的值
*/

// CmdTypeEnum 命令类型枚举
type CmdTypeEnum string

// String 返回命令类型的字符串表示
func (this CmdTypeEnum) String() string {
	return string(this)
}

const (
	// Cmd_Help 显示帮助
	Cmd_Help CmdTypeEnum = "help"
	// Cmd_RunUser 运行用户协程
	Cmd_User CmdTypeEnum = "runuser"
)
const (
	// Logic_Register 注册账号与角色
	Logic_Register CmdTypeEnum = "register"
	// Logic_Gateway Gateway链接
	Logic_Gateway CmdTypeEnum = "gateway"
	// Logic_Login 登录逻辑
	Logic_Login CmdTypeEnum = "login"
)

var (
	// cmdmgr 命令管理器单例
	cmdmgr *CmdMgr
	// NilCmd 空命令指针
	NilCmd *InputCmd
)

// GetCmdMgr 获取命令管理器单例
func GetCmdMgr() *CmdMgr { return cmdmgr }
